home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 May / CMCD0504.ISO / Software / Freeware / Programare / dspack / DSPACK231.exe / {app} / src / DirectX9 / DX7toDX8.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2002-02-16  |  13.2 KB  |  261 lines

  1. {******************************************************************************}
  2. {*                                                                            *}
  3. {*  Copyright (C) 1999 Microsoft Corporation.  All Rights Reserved.           *}
  4. {*                                                                            *}
  5. {*  File:       dx7todx8.h                                                    *}
  6. {*  Content:    DX7 to DX8 Direct3D aliases to aid porting DX7 apps to DX8    *}
  7. {*                                                                            *}
  8. {*  Direct3D 8.x Delphi adaptation by Alexey Barkovoy                         *}
  9. {*  E-Mail: clootie@reactor.ru                                                *}
  10. {*                                                                            *}
  11. {*  Modified: 16-Feb-2001                                                     *}
  12. {*                                                                            *}
  13. {*  Partly based upon :                                                       *}
  14. {*    Direct3DX 7.0 Delphi adaptation by                                      *}
  15. {*      Arne SchΣpers, e-Mail: [look at www.delphi-jedi.org/DelphiGraphics/]  *}
  16. {*                                                                            *}
  17. {*  Lastest version can be downloaded from:                                   *}
  18. {*     http://clootie.narod.ru/DelphiGraphics/index.html                      *}
  19. {*     http://delphi-jedi.org                                                 *}
  20. {*                                                                            *}
  21. {******************************************************************************}
  22. {                                                                              }
  23. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  24. {                                                                              }
  25. { The contents of this file are used with permission, subject to the Mozilla   }
  26. { Public License Version 1.1 (the "License"); you may not use this file except }
  27. { in compliance with the License. You may obtain a copy of the License at      }
  28. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  29. {                                                                              }
  30. { Software distributed under the License is distributed on an "AS IS" basis,   }
  31. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  32. { the specific language governing rights and limitations under the License.    }
  33. {                                                                              }
  34. { Alternatively, the contents of this file may be used under the terms of the  }
  35. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  36. { provisions of the LGPL License are applicable instead of those above.        }
  37. { If you wish to allow use of your version of this file only under the terms   }
  38. { of the LGPL License and not to allow others to use your version of this file }
  39. { under the MPL, indicate your decision by deleting  the provisions above and  }
  40. { replace  them with the notice and other provisions required by the LGPL      }
  41. { License.  If you do not delete the provisions above, a recipient may use     }
  42. { your version of this file under either the MPL or the LGPL License.          }
  43. {                                                                              }
  44. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  45. {                                                                              }
  46. {******************************************************************************}
  47.  
  48. unit DX7toDX8;
  49.  
  50. interface
  51.  
  52. uses
  53.   Windows, {$I UseD3D8.inc};
  54.  
  55. {$NOINCLUDE System}
  56. {$NOINCLUDE SysInit}
  57. {$NOINCLUDE Windows}
  58. {$NOINCLUDE Direct3D8}
  59. {$HPPEMIT '#include <dx7todx8.h>'}
  60.  
  61. ///////////////////////////////////////////////////////////////////////////////
  62. //
  63. // d3d8types.h
  64. //
  65. ///////////////////////////////////////////////////////////////////////////////
  66.  
  67.  
  68. const
  69.   D3DTRANSFORMSTATE_WORLD               = D3DTS_WORLD;
  70.   {$EXTERNALSYM D3DTRANSFORMSTATE_WORLD}
  71.   D3DTRANSFORMSTATE_VIEW                = D3DTS_VIEW;
  72.   {$EXTERNALSYM D3DTRANSFORMSTATE_VIEW}
  73.   D3DTRANSFORMSTATE_PROJECTION          = D3DTS_PROJECTION;
  74.   {$EXTERNALSYM D3DTRANSFORMSTATE_PROJECTION}
  75.   D3DTRANSFORMSTATE_WORLD1              = D3DTS_WORLD1;
  76.   {$EXTERNALSYM D3DTRANSFORMSTATE_WORLD1}
  77.   D3DTRANSFORMSTATE_WORLD2              = D3DTS_WORLD2;
  78.   {$EXTERNALSYM D3DTRANSFORMSTATE_WORLD2}
  79.   D3DTRANSFORMSTATE_WORLD3              = D3DTS_WORLD3;
  80.   {$EXTERNALSYM D3DTRANSFORMSTATE_WORLD3}
  81.   D3DTRANSFORMSTATE_TEXTURE0            = D3DTS_TEXTURE0;
  82.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE0}
  83.   D3DTRANSFORMSTATE_TEXTURE1            = D3DTS_TEXTURE1;
  84.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE1}
  85.   D3DTRANSFORMSTATE_TEXTURE2            = D3DTS_TEXTURE2;
  86.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE2}
  87.   D3DTRANSFORMSTATE_TEXTURE3            = D3DTS_TEXTURE3;
  88.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE3}
  89.   D3DTRANSFORMSTATE_TEXTURE4            = D3DTS_TEXTURE4;
  90.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE4}
  91.   D3DTRANSFORMSTATE_TEXTURE5            = D3DTS_TEXTURE5;
  92.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE5}
  93.   D3DTRANSFORMSTATE_TEXTURE6            = D3DTS_TEXTURE6;
  94.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE6}
  95.   D3DTRANSFORMSTATE_TEXTURE7            = D3DTS_TEXTURE7;
  96.   {$EXTERNALSYM D3DTRANSFORMSTATE_TEXTURE7}
  97.   D3DTRANSFORMSTATE_FORCE_DWORD         = D3DTS_FORCE_DWORD;
  98.   {$EXTERNALSYM D3DTRANSFORMSTATE_FORCE_DWORD}
  99.  
  100.   D3DRENDERSTATE_ZENABLE                = D3DRS_ZENABLE;
  101.   {$EXTERNALSYM D3DRENDERSTATE_ZENABLE}
  102.   D3DRENDERSTATE_FILLMODE               = D3DRS_FILLMODE;
  103.   {$EXTERNALSYM D3DRENDERSTATE_FILLMODE}
  104.   D3DRENDERSTATE_SHADEMODE              = D3DRS_SHADEMODE;
  105.   {$EXTERNALSYM D3DRENDERSTATE_SHADEMODE}
  106.   D3DRENDERSTATE_LINEPATTERN            = D3DRS_LINEPATTERN;
  107.   {$EXTERNALSYM D3DRENDERSTATE_LINEPATTERN}
  108.   D3DRENDERSTATE_ZWRITEENABLE           = D3DRS_ZWRITEENABLE;
  109.   {$EXTERNALSYM D3DRENDERSTATE_ZWRITEENABLE}
  110.   D3DRENDERSTATE_ALPHATESTENABLE        = D3DRS_ALPHATESTENABLE;
  111.   {$EXTERNALSYM D3DRENDERSTATE_ALPHATESTENABLE}
  112.   D3DRENDERSTATE_LASTPIXEL              = D3DRS_LASTPIXEL;
  113.   {$EXTERNALSYM D3DRENDERSTATE_LASTPIXEL}
  114.   D3DRENDERSTATE_SRCBLEND               = D3DRS_SRCBLEND;
  115.   {$EXTERNALSYM D3DRENDERSTATE_SRCBLEND}
  116.   D3DRENDERSTATE_DESTBLEND              = D3DRS_DESTBLEND;
  117.   {$EXTERNALSYM D3DRENDERSTATE_DESTBLEND}
  118.   D3DRENDERSTATE_CULLMODE               = D3DRS_CULLMODE;
  119.   {$EXTERNALSYM D3DRENDERSTATE_CULLMODE}
  120.   D3DRENDERSTATE_ZFUNC                  = D3DRS_ZFUNC;
  121.   {$EXTERNALSYM D3DRENDERSTATE_ZFUNC}
  122.   D3DRENDERSTATE_ALPHAREF               = D3DRS_ALPHAREF;
  123.   {$EXTERNALSYM D3DRENDERSTATE_ALPHAREF}
  124.   D3DRENDERSTATE_ALPHAFUNC              = D3DRS_ALPHAFUNC;
  125.   {$EXTERNALSYM D3DRENDERSTATE_ALPHAFUNC}
  126.   D3DRENDERSTATE_DITHERENABLE           = D3DRS_DITHERENABLE;
  127.   {$EXTERNALSYM D3DRENDERSTATE_DITHERENABLE}
  128.   D3DRENDERSTATE_ALPHABLENDENABLE       = D3DRS_ALPHABLENDENABLE;
  129.   {$EXTERNALSYM D3DRENDERSTATE_ALPHABLENDENABLE}
  130.   D3DRENDERSTATE_FOGENABLE              = D3DRS_FOGENABLE;
  131.   {$EXTERNALSYM D3DRENDERSTATE_FOGENABLE}
  132.   D3DRENDERSTATE_SPECULARENABLE         = D3DRS_SPECULARENABLE;
  133.   {$EXTERNALSYM D3DRENDERSTATE_SPECULARENABLE}
  134.   D3DRENDERSTATE_ZVISIBLE               = D3DRS_ZVISIBLE;
  135.   {$EXTERNALSYM D3DRENDERSTATE_ZVISIBLE}
  136.   D3DRENDERSTATE_FOGCOLOR               = D3DRS_FOGCOLOR;
  137.   {$EXTERNALSYM D3DRENDERSTATE_FOGCOLOR}
  138.   D3DRENDERSTATE_FOGTABLEMODE           = D3DRS_FOGTABLEMODE;
  139.   {$EXTERNALSYM D3DRENDERSTATE_FOGTABLEMODE}
  140.   D3DRENDERSTATE_FOGSTART               = D3DRS_FOGSTART;
  141.   {$EXTERNALSYM D3DRENDERSTATE_FOGSTART}
  142.   D3DRENDERSTATE_FOGEND                 = D3DRS_FOGEND;
  143.   {$EXTERNALSYM D3DRENDERSTATE_FOGEND}
  144.   D3DRENDERSTATE_FOGDENSITY             = D3DRS_FOGDENSITY;
  145.   {$EXTERNALSYM D3DRENDERSTATE_FOGDENSITY}
  146.   D3DRENDERSTATE_EDGEANTIALIAS          = D3DRS_EDGEANTIALIAS;
  147.   {$EXTERNALSYM D3DRENDERSTATE_EDGEANTIALIAS}
  148.   D3DRENDERSTATE_ZBIAS                  = D3DRS_ZBIAS;
  149.   {$EXTERNALSYM D3DRENDERSTATE_ZBIAS}
  150.   D3DRENDERSTATE_RANGEFOGENABLE         = D3DRS_RANGEFOGENABLE;
  151.   {$EXTERNALSYM D3DRENDERSTATE_RANGEFOGENABLE}
  152.   D3DRENDERSTATE_STENCILENABLE          = D3DRS_STENCILENABLE;
  153.   {$EXTERNALSYM D3DRENDERSTATE_STENCILENABLE}
  154.   D3DRENDERSTATE_STENCILFAIL            = D3DRS_STENCILFAIL;
  155.   {$EXTERNALSYM D3DRENDERSTATE_STENCILFAIL}
  156.   D3DRENDERSTATE_STENCILZFAIL           = D3DRS_STENCILZFAIL;
  157.   {$EXTERNALSYM D3DRENDERSTATE_STENCILZFAIL}
  158.   D3DRENDERSTATE_STENCILPASS            = D3DRS_STENCILPASS;
  159.   {$EXTERNALSYM D3DRENDERSTATE_STENCILPASS}
  160.   D3DRENDERSTATE_STENCILFUNC            = D3DRS_STENCILFUNC;
  161.   {$EXTERNALSYM D3DRENDERSTATE_STENCILFUNC}
  162.   D3DRENDERSTATE_STENCILREF             = D3DRS_STENCILREF;
  163.   {$EXTERNALSYM D3DRENDERSTATE_STENCILREF}
  164.   D3DRENDERSTATE_STENCILMASK            = D3DRS_STENCILMASK;
  165.   {$EXTERNALSYM D3DRENDERSTATE_STENCILMASK}
  166.   D3DRENDERSTATE_STENCILWRITEMASK       = D3DRS_STENCILWRITEMASK;
  167.   {$EXTERNALSYM D3DRENDERSTATE_STENCILWRITEMASK}
  168.   D3DRENDERSTATE_TEXTUREFACTOR          = D3DRS_TEXTUREFACTOR;
  169.   {$EXTERNALSYM D3DRENDERSTATE_TEXTUREFACTOR}
  170.   D3DRENDERSTATE_WRAP0                  = D3DRS_WRAP0;
  171.   {$EXTERNALSYM D3DRENDERSTATE_WRAP0}
  172.   D3DRENDERSTATE_WRAP1                  = D3DRS_WRAP1;
  173.   {$EXTERNALSYM D3DRENDERSTATE_WRAP1}
  174.   D3DRENDERSTATE_WRAP2                  = D3DRS_WRAP2;
  175.   {$EXTERNALSYM D3DRENDERSTATE_WRAP2}
  176.   D3DRENDERSTATE_WRAP3                  = D3DRS_WRAP3;
  177.   {$EXTERNALSYM D3DRENDERSTATE_WRAP3}
  178.   D3DRENDERSTATE_WRAP4                  = D3DRS_WRAP4;
  179.   {$EXTERNALSYM D3DRENDERSTATE_WRAP4}
  180.   D3DRENDERSTATE_WRAP5                  = D3DRS_WRAP5;
  181.   {$EXTERNALSYM D3DRENDERSTATE_WRAP5}
  182.   D3DRENDERSTATE_WRAP6                  = D3DRS_WRAP6;
  183.   {$EXTERNALSYM D3DRENDERSTATE_WRAP6}
  184.   D3DRENDERSTATE_WRAP7                  = D3DRS_WRAP7;
  185.   {$EXTERNALSYM D3DRENDERSTATE_WRAP7}
  186.   D3DRENDERSTATE_CLIPPING               = D3DRS_CLIPPING;
  187.   {$EXTERNALSYM D3DRENDERSTATE_CLIPPING}
  188.   D3DRENDERSTATE_LIGHTING               = D3DRS_LIGHTING;
  189.   {$EXTERNALSYM D3DRENDERSTATE_LIGHTING}
  190. //  D3DRENDERSTATE_EXTENTS                = D3DRS_EXTENTS; //BAA: Not found in SDK
  191.   D3DRENDERSTATE_AMBIENT                = D3DRS_AMBIENT;
  192.   {$EXTERNALSYM D3DRENDERSTATE_AMBIENT}
  193.   D3DRENDERSTATE_FOGVERTEXMODE          = D3DRS_FOGVERTEXMODE;
  194.   {$EXTERNALSYM D3DRENDERSTATE_FOGVERTEXMODE}
  195.   D3DRENDERSTATE_COLORVERTEX            = D3DRS_COLORVERTEX;
  196.   {$EXTERNALSYM D3DRENDERSTATE_COLORVERTEX}
  197.   D3DRENDERSTATE_LOCALVIEWER            = D3DRS_LOCALVIEWER;
  198.   {$EXTERNALSYM D3DRENDERSTATE_LOCALVIEWER}
  199.   D3DRENDERSTATE_NORMALIZENORMALS       = D3DRS_NORMALIZENORMALS;
  200.   {$EXTERNALSYM D3DRENDERSTATE_NORMALIZENORMALS}
  201.   D3DRENDERSTATE_DIFFUSEMATERIALSOURCE  = D3DRS_DIFFUSEMATERIALSOURCE;
  202.   {$EXTERNALSYM D3DRENDERSTATE_DIFFUSEMATERIALSOURCE}
  203.   D3DRENDERSTATE_SPECULARMATERIALSOURCE = D3DRS_SPECULARMATERIALSOURCE;
  204.   {$EXTERNALSYM D3DRENDERSTATE_SPECULARMATERIALSOURCE}
  205.   D3DRENDERSTATE_AMBIENTMATERIALSOURCE  = D3DRS_AMBIENTMATERIALSOURCE;
  206.   {$EXTERNALSYM D3DRENDERSTATE_AMBIENTMATERIALSOURCE}
  207.   D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = D3DRS_EMISSIVEMATERIALSOURCE;
  208.   {$EXTERNALSYM D3DRENDERSTATE_EMISSIVEMATERIALSOURCE}
  209.   D3DRENDERSTATE_VERTEXBLEND            = D3DRS_VERTEXBLEND;
  210.   {$EXTERNALSYM D3DRENDERSTATE_VERTEXBLEND}
  211.   D3DRENDERSTATE_CLIPPLANEENABLE        = D3DRS_CLIPPLANEENABLE;
  212.   {$EXTERNALSYM D3DRENDERSTATE_CLIPPLANEENABLE}
  213.  
  214. //#define RGBA_MAKE                               D3DCOLOR_RGBA
  215. function RGBA_MAKE(r, g, b, a: DWORD): TD3DColor;
  216. {$EXTERNALSYM RGBA_MAKE}
  217. //#define RGB_MAKE                                D3DCOLOR_XRGB
  218. function RGB_MAKE(r, g, b: DWORD): TD3DColor;
  219. {$EXTERNALSYM RGB_MAKE}
  220. //#define D3DRGBA                                 D3DCOLOR_COLORVALUE
  221. function D3DRGBA(r, g, b, a: Single): TD3DColor;
  222. {$EXTERNALSYM D3DRGBA}
  223. //#define D3DRGB(_r,_g,_b)                        D3DCOLOR_COLORVALUE(_r,_g,_b,1.f)
  224. function D3DRGB(r, g, b: Single): TD3DColor;
  225. {$EXTERNALSYM D3DRGB}
  226.  
  227. implementation
  228.  
  229. // #define RGBA_MAKE(r, g, b, a)   ((TD3DColor) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
  230. function RGBA_MAKE(r, g, b, a: DWORD): TD3DColor;
  231. begin
  232.   Result := (a shl 24) or (r shl 16) or (g shl 8) or b;
  233. end;
  234.  
  235. // #define RGB_MAKE(r, g, b)       ((TD3DColor) (((r) << 16) | ((g) << 8) | (b)))
  236. function RGB_MAKE(r, g, b: DWORD): TD3DColor;
  237. begin
  238.   Result := (r shl 16) or (g shl 8) or b;
  239. end;
  240.  
  241. // #define D3DRGBA(r, g, b, a) \
  242. //     (  (((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) \
  243. //     |   (((long)((g) * 255)) << 8) | (long)((b) * 255) \
  244. //    )
  245. function D3DRGBA(r, g, b, a: Single): TD3DColor;
  246. begin
  247.   Result := (round(a * 255) shl 24) or (round(r * 255) shl 16)
  248.                                     or (round(g * 255) shl 8)
  249.                                     or round(b * 255);
  250. end;
  251.  
  252. // #define D3DRGB(r, g, b) \
  253. //     (0xff000000L | (((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255))
  254. function D3DRGB(r, g, b: Single): TD3DColor;
  255. begin
  256.   Result := $ff000000 or (round(r * 255) shl 16)
  257.                       or (round(g * 255) shl 8)
  258.                       or round(b * 255);
  259. end;
  260.  
  261. end.